home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swaga_c.zip / ARCHIVES.SWG / 0024_Text to Binary Zip.pas < prev    next >
Pascal/Delphi Source File  |  1995-03-03  |  3KB  |  91 lines

  1. {
  2. Sadly, the 3d.zip file was corrupt again.  Please use my programs here and
  3. generate a DATA.HEX include file.  Your post had lines that were uneven and
  4. obviously missing data.  An include file made by ZIP2HEX will be even and
  5. verifiable.  HEX2ZIP will create the original binary file renamed BINARY.ZIP.
  6. I noticed your zip file was less than 20k and its source code contents were
  7. over 100k.  The include file will always be four times the size of the zip due
  8. to formatting with commas and dollar symbols.  A smarter version should use
  9. LONGINTS instead of BYTES to gain a 60% savings.
  10. { These programs can be added to SWAG }
  11. PROGRAM Hex2Zip;
  12. { Converts hex data file less than 64k in size into binary equivalent }
  13. { 1994 Freeware v1.2  Hex-to-Binary file convertor by John Howard }
  14. {$i DATA.HEX}
  15. (*  layout of DATA.HEX include file is
  16.   CONST
  17.        { Size is equal to FILESIZE(BINARY) }
  18.        HEX_DATA : ARRAY[1..Size] OF BYTE = (
  19.              { i.e. hex data such as $00,$A2,$FF,.. } );
  20. *)
  21. VAR
  22.    BINARY : FILE;
  23. BEGIN
  24.     ASSIGN(BINARY,'BINARY.ZIP');
  25.     REWRITE(BINARY,1);
  26.     BLOCKWRITE(BINARY,HEX_DATA,SIZEOF(HEX_DATA));
  27.     CLOSE(BINARY);
  28.     WRITELN('Data was converted to your file called BINARY.ZIP');
  29. END.
  30.  
  31. PROGRAM Zip2Hex;
  32. { Converts binary file less than 64k in size into hex data file equivalent }
  33. { 1994 Freeware v1.2  Binary-to-Hex data convertor by John Howard }
  34.  
  35. FUNCTION HexByte(B : Byte) : String;
  36. CONST
  37.   HexDigits : ARRAY[0..15] OF Char = '0123456789ABCDEF';
  38. VAR Temp : String;
  39. BEGIN
  40.   Temp[0] := #2;
  41.   Temp[1] := HexDigits[B SHR 4];
  42.   Temp[2] := HexDigits[B AND $F];
  43.   HexByte := Temp;
  44. END;
  45.  
  46. VAR
  47.    BINARY : FILE;
  48.    HEXFILE : TEXT;
  49.    Hex_Byte : BYTE;
  50.    Size : LONGINT;
  51.    i : WORD;
  52. BEGIN
  53.   IF ParamStr(1) = '?' THEN
  54.     BEGIN
  55.       WRITELN('Howard International, P.O. Box 34633, NKC, MO 64116 USA');
  56.       WRITELN('1994 Freeware v1.2  Binary-to-Hex data convertor');
  57.       WRITELN('Syntax:  zip2hex.exe  [filename]');
  58.       WRITELN('Filename is optional, the default is BINARY.ZIP');
  59.       Halt;
  60.     END;
  61.  
  62.     IF ParamCount = 0 THEN
  63.        ASSIGN(BINARY,'BINARY.ZIP')
  64.     ELSE
  65.        ASSIGN(BINARY,ParamStr(1));
  66.  
  67.     RESET(BINARY,1);
  68.     ASSIGN(HEXFILE,'DATA.HEX');
  69.     REWRITE(HEXFILE);
  70.  
  71.     Size := FILESIZE(BINARY);
  72.     WRITELN(HEXFILE, 'CONST HEX_DATA : ARRAY[1..', Size,'] OF BYTE = (');
  73.  
  74.     BLOCKREAD(BINARY,Hex_Byte,SIZEOF(Hex_Byte));
  75.     WRITE(HEXFILE, ' $');
  76.     WRITE(HEXFILE,HEXBYTE(Hex_Byte));
  77.     FOR i := 2 TO Size DO
  78.       BEGIN
  79.         BLOCKREAD(BINARY,Hex_Byte,SIZEOF(Hex_Byte));
  80.         WRITE(HEXFILE, ',$');
  81.         WRITE(HEXFILE,HEXBYTE(Hex_Byte));
  82.         IF (i MOD 16 = 0) THEN WRITELN(HEXFILE);
  83.       END;
  84.     WRITELN(HEXFILE, ');');
  85.  
  86.     CLOSE(HEXFILE);
  87.     CLOSE(BINARY);
  88.     WRITELN('Your BINARY ZIP was converted to DATA.HEX include file.');
  89. END.
  90.  
  91.